package com.bzframework.movierecommend.client.tmdb.resp;

import lombok.Data;

import java.util.List;

/**
 * TMDB流行电影响应实体类
 * 对应TMDB API中 /movie/popular 接口返回的电影数据项
 */
@Data
public class PopularMovieResp {

    /**
     * 是否为成人内容
     * true: 成人内容 (R级)
     * false: 非成人内容
     */
    private Boolean adult;

    /**
     * 背景图片路径（相对路径）
     * 格式："/xxx.jpg"
     * 完整URL需要拼接：https://image.tmdb.org/t/p/{尺寸代码}{backdrop_path}
     * 推荐尺寸：w300, w780, w1280, original
     */
    private String backdrop_path;

    /**
     * 电影类型ID列表
     * 对应TMDB类型ID，如：28(动作), 12(冒险), 16(动画)等
     * 需要通过/genre/movie/list接口获取类型名称映射
     */
    private List<String> genre_ids;

    /**
     * 电影在TMDB中的唯一ID
     * 注意：API返回为数值类型，这里使用String避免精度问题
     */
    private String id;

    /**
     * 电影原始语言代码
     * 格式：ISO 639-1 (如：en, zh, ja, ko)
     */
    private String original_language;

    /**
     * 电影原始标题（未经翻译的原始标题）
     * 对于非英语电影，此字段保持原语言标题
     */
    private String original_title;

    /**
     * 电影剧情简介/概述
     * 可能包含HTML标签，使用时需要注意转义
     */
    private String overview;

    /**
     * 电影流行度评分
     * TMDB内部计算的流行度指数，数值越高越流行
     * 基于点击量、评分、收藏数等多因素计算
     */
    private Double popularity;

    /**
     * 海报图片路径（相对路径）
     * 格式："/xxx.jpg"
     * 完整URL需要拼接：https://image.tmdb.org/t/p/{尺寸代码}{poster_path}
     * 推荐尺寸：w92, w154, w185, w342, w500, w780, original
     * 做电影封面建议使用：w500或w780
     */
    private String poster_path;

    /**
     * 电影上映日期
     * 格式：YYYY-MM-DD (如："2024-01-15")
     * 可能为空字符串，表示上映日期未知
     */
    private String release_date;

    /**
     * 电影本地化标题
     * 根据请求参数中的language返回对应语言的标题
     * 如未指定language，默认返回原始标题
     */
    private String title;

    /**
     * 是否有相关视频
     * true: 存在预告片、花絮等视频
     * false: 无相关视频
     */
    private Boolean video;

    /**
     * 用户评分平均值
     * 范围：0-10
     * 基于vote_count个评分计算得出
     */
    private Double vote_average;

    /**
     * 评分总数
     * 参与评分的用户数量
     * vote_average基于此数量的评分计算
     */
    private Integer vote_count;

}
